﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAO;
using DTO;

namespace BUS
{
    static class MethodExtensions
    {

        public static string Clear(this string strInput, string strClear)
        {
            string strOutput = strInput;
            if (null != strClear && strClear.Length > 0)
            {
                int idx = strClear.IndexOf(strInput);
                if (idx >= 0)
                {
                    strOutput = String.Empty;
                }
                else
                {
                    strOutput = strInput.Replace(strClear, @"");
                    strOutput = strOutput.Trim();
                }
            }

            return strOutput;
        }

        public static bool Compare(this DuLieuDTO srcDuLieuDTO, SearchResultObject desDuLieuDTO)
        {
            bool result = true;
            if ((DataProvider._defaultNumber != desDuLieuDTO.MaDichVu && srcDuLieuDTO.MaDichVu != desDuLieuDTO.MaDichVu)
                || (DataProvider._defaultNumber != desDuLieuDTO.MaTinhThanh && srcDuLieuDTO.MaTinhThanh != desDuLieuDTO.MaTinhThanh)
                || (DataProvider._defaultNumber != desDuLieuDTO.MaQuanHuyen && srcDuLieuDTO.MaQuanHuyen != desDuLieuDTO.MaQuanHuyen)
                || (DataProvider._defaultNumber != desDuLieuDTO.MaPhuong && srcDuLieuDTO.MaPhuong != desDuLieuDTO.MaPhuong)
                || (DataProvider._defaultNumber != desDuLieuDTO.MaDuong && srcDuLieuDTO.MaDuong != desDuLieuDTO.MaDuong)
                || (DataProvider._defaultNumber != desDuLieuDTO.MaTenDiaDiem && srcDuLieuDTO.MaTenDiaDiem != desDuLieuDTO.MaTenDiaDiem))
            {
                result = false;
            }

            return result;
        }

        public static List<DuLieuDTO> RemoveDupicatesOnSoNha(this List<DuLieuDTO> lstDuLieuDTO)
        {
            List<DuLieuDTO> lstFinal = new List<DuLieuDTO>();

            try
            {
                Dictionary<string, int> uniqueStore = new Dictionary<string, int>();

                string soNha = String.Empty;
                foreach (DuLieuDTO duLieuDTO in lstDuLieuDTO)
                {
                    soNha = duLieuDTO.SoNha;
                    if (!uniqueStore.ContainsKey(soNha))
                    {
                        uniqueStore.Add(soNha, 0);
                        lstFinal.Add(duLieuDTO);
                    }
                }
            }
            catch (System.Exception ex)
            {
                lstFinal = new List<DuLieuDTO>();
            }

            return lstFinal;
        }
    }
}
